// 封装后端接口的所有 请求

import axios from "axios";

// 通过axios实例化 一个 请求 对象
const http = axios.create({
    baseURL: 'http://127.0.0.1:8888'
})


// 请求拦截器
// @ts-ignore
http.interceptors.request.use(function (config) {
    // 发出请求之前做些什么

    // 判断请求的接口是否满足 未登录的接口 如果不足登录接口则在 请求头中添加 token
    console.log('请求拦截器: ', config)
    if (config.url !== '/login/') {
        const token = window.sessionStorage.getItem('token')
        if (token) {
            // TODO 后期要改，因为给的不是 'JWT ' 给的是 'Bearer '
            config.headers['Authorization'] = 'Bearer ' + token
        }
    }

    return config
})

// 响应拦截器

// 导出封装的后端接口
export default {
    // 登录接口
    // @ts-ignore
    login(params) {
        return http.post('/users/login/', params)
    },

    // --------TODO 项目的怎删改查接口----------
    // 获取项目的 列表
    getProjects() {
        return http.get('/projects/')
    },

    // 添加项目
    // @ts-ignore
    createProject(params) {
        return http.post('/projects/', params)
    },

    // 更新项目
    // @ts-ignore
    updateProject(id, params) {
        return http.patch(`/projects/${id}/`, params)
    },

    // 删除项目
    // @ts-ignore
    deleteProject(id) {
        return http.delete(`/projects/${id}`)
    }

}